import tkinter
import threading
import datetime
import time

app=tkinter.Tk()
#不显示标题栏
app.overrideredirect(True)
#半透明窗体
app.attributes('-alpha',0.9)
#窗口总是在顶端显示
app.attributes('-topmost',1)
#设置初始大小与位置
app.geometry('100x25+800+500')
labelDateTime=tkinter.Label(app)
labelDateTime.pack(fill=tkinter.BOTH,expand=tkinter.YES)
labelDateTime.configure(bg='gray')
#变量X和Y用于记录鼠标左键按下的位置
X = tkinter.IntVar(value=0)
Y = tkinter.IntVar(value=0)
#表示窗口是否可拖动的变量
canMove=tkinter.IntVar(value=0)
#表示是否仍在运行的变量
still=tkinter.IntVar(value=1)

def onLeftButtonDown(event):
   #开始拖动时增加透明度
   app.attributes('-alpha',0.4)
   #鼠标左键按下，记录当前位置
   X.set(event.x)
   Y.set(event.y)
   #标记窗口可拖动
   canMove.set(1)
#绑定鼠标左键单击事件处理函数
labelDateTime.bind('<Button-1>',onLeftButtonDown)

def onLeftButtonUp(event):
   #停止拖动时恢复透明度
   app.attributes('-alpha',0.9)
   #鼠标左键抬起，标记窗口不可拖动
   canMove.set(0)
#绑定鼠标左键抬起事件处理函数
labelDateTime.bind('<ButtonRelease-1>',onLeftButtonUp)

def onRightButtonDown(event):
   still.set(0)
   t.join(0.2)
   #关闭窗口
   app.destroy()
#绑定鼠标右键单击事件处理函数
labelDateTime.bind('<Button-3>',onRightButtonDown)

#显示当前时间的线程函数
def nowDateTime():
   while still.get()==1:
     #获取当前的日期时间
     now=datetime.datetime.now()
     s=str(now.year)+'-'+str(now.month)+\
        '-'+str(now.day)+' '
     s=s+str(now.hour)+':'+str(now.minute)+\
        ':'+str(now.second)
     #显示当前时间
     labelDateTime['text']=s
     #0.5秒刷新一次日期时间
     time.sleep(0.5)
#创建并启动线程
t=threading.Thread(target=nowDateTime)
t.daemon=True
t.start()

app.mainloop()
      